package com.edu.service;

import com.edu.bean.News;
import com.edu.bean.CampusStyle;
import com.edu.dao.NewsDao;
import com.edu.dao.CampusStyleDao;
import com.edu.dao.NewsCommentDao;

import java.util.List;
import java.util.Map;

public class UserNewsService {
    private NewsDao newsDao = new NewsDao();
    private CampusStyleDao campusStyleDao = new CampusStyleDao();
    private NewsCommentDao newsCommentDao = new NewsCommentDao();

    /**
     * 获取轮播图新闻
     */
    public List<News> userGetCarouselNews() {
        return newsDao.findCarouselNews();
    }

    /**
     * 获取随机校园风采
     */
    public List<CampusStyle> userGetRandomCampusStyles(int limit) {
        return campusStyleDao.findRandomStyles(limit);
    }

    /**
     * 获取新闻详情
     */
    public News userGetNewsDetail(Integer newsId) {
        // 增加浏览次数
        newsDao.incrementViewCount(newsId);
        return newsDao.findById(newsId);
    }

    /**
     * 获取新闻评论
     */
    public List<Map<String, Object>> userGetNewsComments(Integer newsId) {
        return newsCommentDao.findCommentsByNewsId(newsId);
    }

    /**
     * 添加新闻评论
     */
    public boolean userAddComment(Integer newsId, Integer userId, String content) {
        return newsCommentDao.addComment(newsId, userId, content);
    }

    /**
     * 获取校园风采详情
     */
    public CampusStyle userGetCampusStyleDetail(Integer styleId) {
        return campusStyleDao.findById(styleId);
    }

    /**
     * 分页获取新闻列表
     */
    public List<News> userGetNewsByCategory(String category, int page, int pageSize) {
        int start = (page - 1) * pageSize;
        return newsDao.findByCategory(category, start, pageSize);
    }

    /**
     * 获取新闻总数
     */
    public int userGetNewsTotalCount(String category) {
        return newsDao.findTotalCountByCategory(category);
    }

    /**
     * 分页获取校园风采列表
     */
    public List<CampusStyle> userGetCampusStyleList(int page, int pageSize) {
        int start = (page - 1) * pageSize;
        return campusStyleDao.findByPage(null, start, pageSize);
    }

    /**
     * 获取校园风采总数
     */
    public int userGetCampusStyleTotalCount() {
        return campusStyleDao.findTotalCount(null);
    }

} 